package cn.iocoder.yudao.module.cmt.controller.admin.service.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - ServiceRequest新增/修改 Request VO")
@Data
public class ServiceRequestSaveReqVO {

    @Schema(description = "ID", example = "1")
    private Long id;

    @Schema(description = "社区ID", example = "1")
    private Long communityId;

    @Schema(description = "商户ID(服务提供商户)", example = "1")
    private Long merchantId;

    @Schema(description = "申请编号", example = "示例")
    private String requestNo;

    @Schema(description = "服务分类ID", example = "1")
    private Long categoryId;

    @Schema(description = "申请会员ID", example = "1")
    private Long userId;

    @Schema(description = "受益人员ID", example = "1")
    private Long personId;

    @Schema(description = "服务标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "示例")
    @NotBlank(message = "服务标题不能为空")
    private String title;

    @Schema(description = "服务描述", example = "示例")
    private String description;

    @Schema(description = "图片(JSON数组)", example = "示例")
    private String images;

    @Schema(description = "视频(JSON数组)", example = "1")
    private String videos;

    @Schema(description = "联系人", example = "示例")
    private String contactName;

    @Schema(description = "联系电话", example = "示例")
    private String contactPhone;

    @Schema(description = "服务地址", example = "示例")
    private String serviceAddress;

    @Schema(description = "期望服务日期", example = "1")
    private LocalDateTime expectedDate;

    @Schema(description = "期望服务时间", example = "示例")
    private String expectedTime;

    @Schema(description = "紧急程度：1普通 2紧急 3非常紧急", example = "1")
    private Integer urgencyLevel;

    @Schema(description = "状态：0待接单 1已派单 2服务中 3已完成 4已取消 5已评价", example = "1")
    private Integer requestStatus;

    @Schema(description = "接单志愿者会员ID", example = "1")
    private Long volunteerUserId;

    @Schema(description = "接单志愿者人员ID", example = "1")
    private Long volunteerPersonId;

    @Schema(description = "接单时间", example = "1")
    private LocalDateTime acceptTime;

    @Schema(description = "服务开始时间", example = "1")
    private LocalDateTime startTime;

    @Schema(description = "服务完成时间", example = "1")
    private LocalDateTime completeTime;

    @Schema(description = "服务时长(小时)", example = "1.0")
    private BigDecimal serviceDuration;

    @Schema(description = "积分奖励", example = "1")
    private Integer pointReward;

    @Schema(description = "经验奖励", example = "1")
    private Integer experienceReward;


}
